HAL JPEG I/O operations migration

This section provides information about HAL JPEG I/O operation functions for STM32 HAL1 to HAL2 migration.

HAL JPEG start decoding

HAL1

HAL2

HAL_JPEG_Decode(JPEG_HandleTypeDef *hjpeg,
                uint8_t *pDataIn,
                uint32_t InDataLength,
                uint8_t *pDataOutMCU,
                uint32_t OutDataLength,
                uint32_t Timeout)
HAL_JPEG_Decode(hal_jpeg_handle_t *hjpeg,
                const uint8_t *p_data_in,
                uint32_t in_data_length_byte,
                uint8_t *p_data_out_mcu,
                uint32_t out_data_length_byte,
                uint32_t timeout_ms)

HAL JPEG start decoding using interrupt

HAL1

HAL2

HAL_JPEG_Decode_IT(JPEG_HandleTypeDef *hjpeg,
                   uint8_t *pDataIn,
                   uint32_t InDataLength,
                   uint8_t *pDataOutMCU,
                   uint32_t OutDataLength);
HAL_JPEG_Decode_IT(hal_jpeg_handle_t *hjpeg,
                   const uint8_t *p_data_in,
                   uint32_t in_data_length_byte,
                   uint8_t *p_data_out_mcu,
                   uint32_t out_data_length_byte)

HAL JPEG start decoding using DMA

HAL1

HAL2

HAL_JPEG_Decode_DMA(JPEG_HandleTypeDef *hjpeg,
                    uint8_t *pDataIn,
                    uint32_t InDataLength,
                    uint8_t *pDataOutMCU,
                    uint32_t OutDataLength)
HAL_JPEG_Decode_DMA(hal_jpeg_handle_t *hjpeg,
                    const uint8_t *p_data_in,
                    uint32_t in_data_length_byte,
                    uint8_t *p_data_out_mcu,
                    uint32_t out_data_length_byte)

HAL JPEG configure encoding parameters

HAL1

HAL2

HAL_JPEG_ConfigEncoding(JPEG_HandleTypeDef *hjpeg,
                        const JPEG_ConfTypeDef *pConf)
HAL_JPEG_SetConfigEncoding(hal_jpeg_handle_t *hjpeg,
                           const hal_jpeg_config_t *p_config)

HAL JPEG start encoding

HAL1

HAL2

HAL_JPEG_Encode(JPEG_HandleTypeDef *hjpeg,
                uint8_t *pDataInMCU,
                uint32_t InDataLength,
                uint8_t *pDataOut,
                uint32_t OutDataLength,
                uint32_t Timeout)
HAL_JPEG_Encode(hal_jpeg_handle_t *hjpeg,
                const uint8_t *p_data_in_mcu,
                uint32_t in_data_length_byte,
                uint8_t *p_data_out,
                uint32_t out_data_length_byte,
                uint32_t timeout_ms)

HAL JPEG start encoding using interrupt

HAL1

HAL2

HAL_JPEG_Encode_IT(JPEG_HandleTypeDef *hjpeg,
                   uint8_t *pDataInMCU,
                   uint32_t InDataLength,
                   uint8_t *pDataOut,
                   uint32_t OutDataLength)
HAL_JPEG_Encode_IT(hal_jpeg_handle_t *hjpeg,
                   const uint8_t *p_data_in_mcu,
                   uint32_t in_data_length_byte,
                   uint8_t *p_data_out,
                   uint32_t out_data_length_byte)

HAL JPEG start encoding using DMA

HAL1

HAL2

HAL_JPEG_Encode_DMA(JPEG_HandleTypeDef *hjpeg,
                    uint8_t *pDataInMCU,
                    uint32_t InDataLength,
                    uint8_t *pDataOut,
                    uint32_t OutDataLength)
HAL_JPEG_Encode_DMA(hal_jpeg_handle_t *hjpeg,
                    const uint8_t *p_data_in_mcu,
                    uint32_t in_data_length_byte,
                    uint8_t *p_data_out,
                    uint32_t out_data_length_byte)

HAL JPEG abort ongoing process

HAL1

HAL2

HAL_JPEG_Abort(JPEG_HandleTypeDef *hjpeg)
HAL_JPEG_Abort(hal_jpeg_handle_t *hjpeg)

HAL JPEG configure input buffer

HAL1

HAL2

HAL_JPEG_ConfigInputBuffer(JPEG_HandleTypeDef *hjpeg,
                           uint8_t *pNewInputBuffer,
                           uint32_t InDataLength)
HAL_JPEG_UpdateInputBuffer(hal_jpeg_handle_t *hjpeg,
                           const uint8_t *p_new_input_buffer,
                           uint32_t in_data_length_byte)

HAL JPEG configure output buffer

HAL1

HAL2

HAL_JPEG_ConfigOutputBuffer(JPEG_HandleTypeDef *hjpeg,
                            uint8_t *pNewOutputBuffer,
                            uint32_t OutDataLength)
HAL_JPEG_UpdateOutputBuffer(hal_jpeg_handle_t *hjpeg,
                            uint8_t *p_new_output_buffer,
                            uint32_t out_data_length_byte)

HAL JPEG disable header parsing

HAL1

HAL2

HAL_JPEG_DisableHeaderParsing(JPEG_HandleTypeDef *hjpeg)
HAL_JPEG_DisableHeaderProcessing(hal_jpeg_handle_t *hjpeg)

HAL JPEG enable header parsing

HAL1

HAL2

HAL_JPEG_EnableHeaderParsing(JPEG_HandleTypeDef *hjpeg)
HAL_JPEG_EnableHeaderProcessing(hal_jpeg_handle_t *hjpeg)

HAL JPEG get information

HAL1

HAL2

HAL_JPEG_GetInfo(JPEG_HandleTypeDef *hjpeg,
                 JPEG_ConfTypeDef *pInfo)
HAL_JPEG_GetLastDecodeInfo(hal_jpeg_handle_t *hjpeg,
                           hal_jpeg_config_t *p_info)

HAL JPEG pause processing

HAL1

HAL2

Function prototype

In HAL1, a single function has been used to pause the process for both input and output buffers:

HAL_JPEG_Pause(JPEG_HandleTypeDef *hjpeg,
               uint32_t XferSelection)

In HAL2, dedicated functions are provided for each buffer:


HAL_JPEG_PauseInputBuffer(hal_jpeg_handle_t *hjpeg)
HAL_JPEG_PauseOutputBuffer(hal_jpeg_handle_t *hjpeg)

Example usage

JPEG_HandleTypeDef hjpeg;
HAL_JPEG_Pause(&hjpeg, JPEG_PAUSE_RESUME_INPUT);
HAL_JPEG_Pause(&hjpeg, JPEG_PAUSE_RESUME_OUTPUT);
hal_jpeg_handle_t hjpeg;
HAL_JPEG_PauseInputBuffer(&hjpeg);
HAL_JPEG_PauseOutputBuffer(&hjpeg);

HAL JPEG resume processing

HAL1

HAL2

Function prototype

In HAL1, a single function has been used to resume the process for both input and output buffers:

HAL_JPEG_Resume(JPEG_HandleTypeDef *hjpeg,
                 uint32_t XferSelection)

In HAL2, dedicated functions are provided for each buffer:


HAL_JPEG_ResumeInputBuffer(hal_jpeg_handle_t *hjpeg)
HAL_JPEG_ResumeOutputBuffer(hal_jpeg_handle_t *hjpeg)

Example usage

JPEG_HandleTypeDef hjpeg;
HAL_JPEG_Resume(&hjpeg, JPEG_PAUSE_RESUME_INPUT);
HAL_JPEG_Resume(&hjpeg, JPEG_PAUSE_RESUME_OUTPUT);
hal_jpeg_handle_t hjpeg;
HAL_JPEG_ResumeInputBuffer(&hjpeg);
HAL_JPEG_ResumeOutputBuffer(&hjpeg);

HAL JPEG set user quantization tables

HAL1

HAL2

Function prototype

In HAL1, a single function has been used to set all user quantization tables:

HAL_JPEG_SetUserQuantTables(JPEG_HandleTypeDef *hjpeg,
                            uint8_t *QTable0,
                            uint8_t *QTable1,
                            uint8_t *QTable2,
                            uint8_t *QTable3)

In HAL2, dedicated functions are provided for each quantization table:

HAL_JPEG_SetUserQuantTables1(hal_jpeg_handle_t *hjpeg, const uint8_t *p_qtable1)
HAL_JPEG_SetUserQuantTables2(hal_jpeg_handle_t *hjpeg, const uint8_t *p_qtable2)
HAL_JPEG_SetUserQuantTables3(hal_jpeg_handle_t *hjpeg, const uint8_t *p_qtable3)
HAL_JPEG_SetUserQuantTables4(hal_jpeg_handle_t *hjpeg, const uint8_t *p_qtable4)

Example usage

JPEG_HandleTypeDef hjpeg;
uint8_t quant_table0[64];
uint8_t quant_table1[64];
uint8_t quant_table2[64];
uint8_t quant_table3[64];
HAL_JPEG_SetUserQuantTables(&hjpeg, quant_table0,
                            quant_table1, quant_table2,
                            quant_table3);
hal_jpeg_handle_t hjpeg;
uint8_t quant_table1[64];
uint8_t quant_table2[64];
uint8_t quant_table3[64];
uint8_t quant_table4[64];
HAL_JPEG_SetUserQuantTables1(&hjpeg, quant_table1);
HAL_JPEG_SetUserQuantTables2(&hjpeg, quant_table2);
HAL_JPEG_SetUserQuantTables3(&hjpeg, quant_table3);
HAL_JPEG_SetUserQuantTables4(&hjpeg, quant_table4);